﻿//------------------------------------------------------------
// AGame
// Copyright © 2020 - 2030. All rights reserved.
//------------------------------------------------------------
// 此文件由工具自动生成，请勿直接修改。
// 生成时间：2022-04-06 11:39:32.283
//------------------------------------------------------------

using GameFramework;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
using UnityGameFramework.Runtime;

/// <summary>
/// 音效表。
/// </summary>
public class DTAudio : DataRowBase
{
    private int m_Id = 0;

    /// <summary>
    /// 获取编号。
    /// </summary>
    public override int Id
    {
        get { return m_Id; }
    }

    /// <summary>
    /// 获取音效名称。
    /// </summary>
    public string AssetName { get; private set; }

    /// <summary>
    /// 获取音效大小（0,1）。
    /// </summary>
    public float Volume { get; private set; }

    public override bool ParseDataRow(string dataRowString, object userData)
    {
        string[] columnStrings = dataRowString.Split(DataTableExtension.DataSplitSeparators);
        for (int i = 0; i < columnStrings.Length; i++)
        {
            columnStrings[i] = columnStrings[i].Trim(DataTableExtension.DataTrimSeparators);
        }

        int index = 0;
        index++;
        m_Id = int.Parse(columnStrings[index++]);
        index++;
        AssetName = columnStrings[index++];
        Volume = float.Parse(columnStrings[index++]);

        GeneratePropertyArray();
        return true;
    }

    public override bool ParseDataRow(byte[] dataRowBytes, int startIndex, int length, object userData)
    {
        using (MemoryStream memoryStream = new MemoryStream(dataRowBytes, startIndex, length, false))
        {
            using (BinaryReader binaryReader = new BinaryReader(memoryStream, Encoding.UTF8))
            {
                m_Id = binaryReader.Read7BitEncodedInt32();
                AssetName = binaryReader.ReadString();
                Volume = binaryReader.ReadSingle();
            }
        }

        GeneratePropertyArray();
        return true;
    }

    private void GeneratePropertyArray()
    {

    }
}
